package com.ungs.dao.impl;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.criterion.Restrictions;

import com.ungs.dao.DetalleCompraDAO;
import com.ungs.entities.DetalleCompra;
import com.ungs.entities.SolicitudCompra;

public class DetalleCompraDAOImpl extends EntidadDAOImpl<DetalleCompra>
		implements DetalleCompraDAO {

	@SuppressWarnings("unchecked")
	@Override
	public List<DetalleCompra> getDetalleCompraBySolicitud(
			SolicitudCompra solicitudCompra) throws HibernateException {
		List<DetalleCompra> detalleCompraList = new ArrayList<DetalleCompra>();
		logger.info("Obteniendo detalle de compra por solicitud");
		try {
			iniciaConexion();
			Criteria criteria = getSession()
					.createCriteria(DetalleCompra.class);
			Criteria critOT = criteria.createCriteria("solicitudCompra");
			critOT.add(Restrictions.eq("id", solicitudCompra.getId()));
			criteria.add(Restrictions.eq("estadoLogico", "A"));

			detalleCompraList = (List<DetalleCompra>) criteria.list();

		} catch (HibernateException he) {
			logger.error("Error al traer los detalles de compra de la SC: "
					+ DetalleCompra.class + "DAO");
			manejaExcepcion(he);
			throw he;
		} finally {
			getSession().close();
		}
		return detalleCompraList;
	}

}
